home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
IDLIncludes
/
Video.idl
< prev
next >
Wrap
Text File
|
1996-05-01
|
10KB
|
234 lines
/*
File: Video.idl
Contains: Video Driver Interfaces.
Version: Technology: System 7.5
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __VIDEO_IDL__
#define __VIDEO_IDL__
#include <somobj.idl>
#include <somcls.idl>
#ifndef __QUICKDRAW_IDL__
#include <Quickdraw.idl>
#endif
#ifdef __SOMIDL__
/* csTimingFormat values in VDTimingInfo */
/* look in the declaration rom for timing info */
/*
Timing mode constants for Display Manager MultiMode support
Corresponding .h equates are in Video.h
.a equates are in Video.a
.r equates are in DepVideoEqu.r
The first enum is the old names (for compatibility).
The second enum is the new names.
*/
/* csConnectFlags values in VDDisplayConnectInfo */
/* csDisplayType values in VDDisplayConnectInfo */
/* csTimingFlags values in VDTimingInfoRec */
/* csResolutionFlags bit flags for VDResolutionInfoRec */
/* Bit definitions for the Get/Set Sync call*/
/* Bit definitions for the Get/Set Convolution call*/
typedef SOMLargeStruct VPBlock; /* Derived from a struct of 42 bytes in size */
typedef OpaquePtr VPBlockPtr; /* Substituted OpaquePtr for ``VPBlock*'' */
typedef SOMFourByteStruct VDEntryRecord; /* Derived from a struct of 4 bytes in size */
typedef OpaquePtr VDEntRecPtr; /* Substituted OpaquePtr for ``VDEntryRecord*'' */
/* Parm block for SetGray control call */
typedef SOMTwoByteStruct VDGrayRecord; /* Derived from a struct of 2 bytes in size */
typedef OpaquePtr VDGrayPtr; /* Substituted OpaquePtr for ``VDGrayRecord*'' */
/* Parm block for SetInterrupt call */
typedef SOMTwoByteStruct VDFlagRecord; /* Derived from a struct of 2 bytes in size */
typedef OpaquePtr VDFlagRecPtr; /* Substituted OpaquePtr for ``VDFlagRecord*'' */
/* Parm block for SetEntries control call */
typedef SOMLargeStruct VDSetEntryRecord; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr VDSetEntryPtr; /* Substituted OpaquePtr for ``VDSetEntryRecord*'' */
/* Parm block for SetGamma control call */
typedef SOMFourByteStruct VDGammaRecord; /* Derived from a struct of 4 bytes in size */
typedef OpaquePtr VDGamRecPtr; /* Substituted OpaquePtr for ``VDGammaRecord*'' */
typedef SOMLargeStruct VDBaseAddressInfoRec; /* Derived from a struct of 14 bytes in size */
typedef OpaquePtr VDBaseAddressInfoPtr; /* Substituted OpaquePtr for ``VDBaseAddressInfoRec*'' */
typedef SOMLargeStruct VDSwitchInfoRec; /* Derived from a struct of 16 bytes in size */
typedef OpaquePtr VDSwitchInfoPtr; /* Substituted OpaquePtr for ``VDSwitchInfoRec*'' */
typedef SOMLargeStruct VDTimingInfoRec; /* Derived from a struct of 20 bytes in size */
typedef OpaquePtr VDTimingInfoPtr; /* Substituted OpaquePtr for ``VDTimingInfoRec*'' */
typedef SOMLargeStruct VDDisplayConnectInfoRec; /* Derived from a struct of 16 bytes in size */
typedef OpaquePtr VDDisplayConnectInfoPtr; /* Substituted OpaquePtr for ``VDDisplayConnectInfoRec*'' */
/*
RawSenseCode
This abstract data type is not exactly abstract. Rather, it is merely enumerated constants
for the possible raw sense code values when 'standard' sense code hardware is implemented.
For 'standard' sense code hardware, the raw sense is obtained as follows:
* Instruct the frame buffer controller NOT to actively drive any of the monitor sense lines
* Read the state of the monitor sense lines 2, 1, and 0. (2 is the MSB, 0 the LSB)
IMPORTANT Note:
When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is FALSE, then these constants
are valid 'csConnectTaggedType' values in 'VDDisplayConnectInfo'
*/
typedef octet RawSenseCode; /* Substituted octet for unsigned char type */
/*
ExtendedSenseCode
This abstract data type is not exactly abstract. Rather, it is merely enumerated constants
for the values which are possible when the extended sense algorithm is applied to hardware
which implements 'standard' sense code hardware.
For 'standard' sense code hardware, the extended sense code algorithm is as follows:
(Note: as described here, sense line 'A' corresponds to '2', 'B' to '1', and 'C' to '0')
* Drive sense line 'A' low and read the values of 'B' and 'C'.
* Drive sense line 'B' low and read the values of 'A' and 'C'.
* Drive sense line 'C' low and read the values of 'A' and 'B'.
In this way, a six-bit number of the form BC/AC/AB is generated.
IMPORTANT Note:
When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is FALSE, then these constants
are valid 'csConnectTaggedData' values in 'VDDisplayConnectInfo'
*/
typedef octet ExtendedSenseCode; /* Substituted octet for unsigned char type */
/*
DepthMode
This abstract data type is used to to reference RELATIVE pixel depths.
Its definition is largely derived from its past usage, analogous to 'xxxVidMode'
Bits per pixel DOES NOT directly map to 'DepthMode' For example, on some
graphics hardware, 'kDepthMode1' may represent 1 BPP, whereas on other
hardware, 'kDepthMode1' may represent 8BPP.
DepthMode IS considered to be ordinal, i.e., operations such as <, >, ==, etc.
behave as expected. The values of the constants which comprise the set are such
that 'kDepthMode4 < kDepthMode6' behaves as expected.
*/
typedef unsigned short DepthMode;
typedef SOMLargeStruct VDPageInfo; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr VDPgInfoPtr; /* Substituted OpaquePtr for ``VDPageInfo*'' */
typedef SOMLargeStruct VDSizeInfo; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr VDSzInfoPtr; /* Substituted OpaquePtr for ``VDSizeInfo*'' */
typedef SOMLargeStruct VDSettings; /* Derived from a struct of 38 bytes in size */
typedef OpaquePtr VDSettingsPtr; /* Substituted OpaquePtr for ``VDSettings*'' */
typedef SOMTwoByteStruct VDDefMode; /* Derived from a struct of 2 bytes in size */
typedef OpaquePtr VDDefModePtr; /* Substituted OpaquePtr for ``VDDefMode*'' */
typedef SOMTwoByteStruct VDSyncInfoRec; /* Derived from a struct of 2 bytes in size */
typedef OpaquePtr VDSyncInfoPtr; /* Substituted OpaquePtr for ``VDSyncInfoRec*'' */
typedef unsigned long DisplayModeID;
typedef unsigned long VideoDeviceType;
typedef unsigned long GammaTableID;
/* Constants for the GetNextResolution call */
/* Constants for the GetGammaInfoList call */
typedef SOMLargeStruct VDResolutionInfoRec; /* Derived from a struct of 30 bytes in size */
typedef OpaquePtr VDResolutionInfoPtr; /* Substituted OpaquePtr for ``VDResolutionInfoRec*'' */
typedef SOMLargeStruct VDVideoParametersInfoRec; /* Derived from a struct of 22 bytes in size */
typedef OpaquePtr VDVideoParametersInfoPtr; /* Substituted OpaquePtr for ``VDVideoParametersInfoRec*'' */
typedef SOMLargeStruct VDGammaInfoRec; /* Derived from a struct of 16 bytes in size */
typedef OpaquePtr VDGammaInfoPtr; /* Substituted OpaquePtr for ``VDGammaInfoRec*'' */
typedef SOMLargeStruct VDGetGammaListRec; /* Derived from a struct of 16 bytes in size */
typedef OpaquePtr VDGetGammaListPtr; /* Substituted OpaquePtr for ``VDGetGammaListRec*'' */
typedef SOMLargeStruct VDRetrieveGammaRec; /* Derived from a struct of 8 bytes in size */
typedef OpaquePtr VDRetrieveGammaPtr; /* Substituted OpaquePtr for ``VDRetrieveGammaRec*'' */
typedef SOMLargeStruct VDSetHardwareCursorRec; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr VDSetHardwareCursorPtr; /* Substituted OpaquePtr for ``VDSetHardwareCursorRec*'' */
typedef SOMLargeStruct VDDrawHardwareCursorRec; /* Derived from a struct of 20 bytes in size */
typedef OpaquePtr VDDrawHardwareCursorPtr; /* Substituted OpaquePtr for ``VDDrawHardwareCursorRec*'' */
typedef SOMLargeStruct VDSupportsHardwareCursorRec; /* Derived from a struct of 12 bytes in size */
typedef OpaquePtr VDSupportsHardwareCursorPtr; /* Substituted OpaquePtr for ``VDSupportsHardwareCursorRec*'' */
typedef SOMLargeStruct VDHardwareCursorDrawStateRec; /* Derived from a struct of 24 bytes in size */
typedef OpaquePtr VDHardwareCursorDrawStatePtr; /* Substituted OpaquePtr for ``VDHardwareCursorDrawStateRec*'' */
typedef SOMLargeStruct VDConvolutionInfoRec; /* Derived from a struct of 18 bytes in size */
typedef OpaquePtr VDConvolutionInfoPtr; /* Substituted OpaquePtr for ``VDConvolutionInfoRec*'' */
typedef SOMLargeStruct VDPowerStateRec; /* Derived from a struct of 16 bytes in size */
typedef OpaquePtr VDPowerStatePtr; /* Substituted OpaquePtr for ``VDPowerStateRec*'' */
/*
Private Data to video drivers.
In versions of MacOS with multiple address spaces (System 8), the OS
must know the extent of parameters in order to move them between the caller
and driver. The old private-selector model for video drivers does not have
this information so:
For post-7.x Systems private calls should be implemented using the cscPrivateCall
*/
typedef SOMLargeStruct VDPrivateSelectorDataRec; /* Derived from a struct of 16 bytes in size */
typedef SOMLargeStruct VDPrivateSelectorRec; /* Derived from a struct of 20 bytes in size */
#endif /* __SOMIDL__ */
#endif /* __VIDEO_IDL__ */